home *** CD-ROM | disk | FTP | other *** search
/ The Fast Show Comedy Pack / The Fast Show Comedy Pack.iso / FSQuiz / FSQuiz.dxr / Internal_2_quizdBScript.ls < prev    next >
Encoding:
Text File  |  1999-11-15  |  5.7 KB  |  220 lines

  1. property pQuizDB, pChapterNum, pSectionList, pCurrentSectionType, pLastVidStill
  2.  
  3. on new me, dbName
  4.   pQuizDB = DGOpenDatabase(dbName, 1, 0, EMPTY)
  5.   if pQuizDB = "#ERROR#" then
  6.     alert("problem opening quiz database")
  7.     quit()
  8.   end if
  9.   mGetChapter(me)
  10.   return me
  11. end
  12.  
  13. on mDelete me
  14.   if pQuizDB <> 0 then
  15.     if DGClose(pQuizDB) = "#ERROR#" then
  16.     end if
  17.   end if
  18. end
  19.  
  20. on mGetChapter me
  21.   queryName = "getChapters"
  22.   qDef = DGQDOpen(queryName, pQuizDB)
  23.   rs = DGQDCreateRS(qDef)
  24.   DGRSMoveLast(rs)
  25.   numRecs = DGRSGetRecordCount(rs)
  26.   DGRSMoveFirst(rs)
  27.   recOffset = random(numRecs) - 1
  28.   DGRSMove(recOffset, rs)
  29.   record = mGetCurrentRecord(me, [#Template], rs)
  30.   DGRSClose(rs)
  31.   DGQDClose(qDef)
  32.   getProp(record, #Template)
  33.   Template = getProp(record, #Template)
  34.   numSections = Template.words.count
  35.   i = 1
  36.   pSectionList = []
  37.   repeat while i <= numSections
  38.     append(pSectionList, Template.word[i])
  39.     i = i + 1
  40.   end repeat
  41.   mIncChapterCount(me)
  42. end
  43.  
  44. on mGoNextSection me
  45.   if pSectionList.count = 0 then
  46.     mGetChapter(me)
  47.   end if
  48.   pCurrentSectionType = pSectionList[1]
  49.   deleteAt(pSectionList, 1)
  50.   go(pCurrentSectionType)
  51. end
  52.  
  53. on mIncChapterCount me
  54.   rs = DGCreateRecordset("SELECT * FROM Quiz_Sys WHERE ID = 1", pQuizDB)
  55.   pChapterNum = DGRSGetFieldValue("Sys_Last_Play_Num", rs) + 1
  56.   DGRSEdit(rs)
  57.   DGRSSetFieldValue("Sys_Last_Play_Num", pChapterNum, rs)
  58.   DGRSUpdate(rs)
  59.   DGRSClose(rs)
  60. end
  61.  
  62. on mGetCurrentRecord me, fieldNamesList, currentRS
  63.   record = [:]
  64.   i = 1
  65.   repeat while i <= fieldNamesList.count
  66.     addProp(record, getAt(fieldNamesList, i), DGRSGetFieldValue(string(getAt(fieldNamesList, i)), currentRS))
  67.     i = i + 1
  68.   end repeat
  69.   return record
  70. end
  71.  
  72. on mGetQuestionRecord me, qType, idNum, fieldNamesList
  73.   queryName = "get" & string(qType) & "_QuestionRecord_q"
  74.   qDef = DGQDOpen(queryName, pQuizDB)
  75.   DGQDSetParameterValue("p_Id", idNum, qDef)
  76.   rs = DGQDCreateRS(qDef)
  77.   if rs = "#ERROR#" then
  78.     alert("buggggggg")
  79.     nothing()
  80.   end if
  81.   record = mGetCurrentRecord(me, fieldNamesList, rs)
  82.   mUpdateRecency(me, rs)
  83.   DGRSClose(rs)
  84.   DGQDClose(qDef)
  85.   return record
  86. end
  87.  
  88. on mGetLRUCC me
  89.   return getProp(mGetLRU(me, "getCC_LRU_q", [:], [#Char_Code], 1), #Char_Code)
  90. end
  91.  
  92. on mGetCCLRURes me, CC, resType
  93.   case resType of
  94.     #AU:
  95.       return getProp(mGetLRU(me, "getAudClip_LRU_q", [#p_CC: CC], [#Audio_File], 1), #Audio_File)
  96.     #PIC:
  97.       retList = mGetLRU(me, "getPic_LRU_q", [#p_CC: CC], [#Pic_File], 1)
  98.       return getProp(retList, #Pic_File)
  99.     #GRID:
  100.       retList = mGetLRU(me, "getGRID_LRU_q", [#p_CC: CC], [#Pic_Grid_File, #Pic_Grid_Code], 1)
  101.       return retList
  102.   end case
  103. end
  104.  
  105. on mGetLRUQuestion me, qType, qParamList
  106.   case qType of
  107.     #VO:
  108.       clipNum = getProp(mGetLRU(me, "getVid_LRU_q", [:], [#Vid_Code], 1), #Vid_Code)
  109.       if clipNum = 0 then
  110.         questionID = 0
  111.       else
  112.         questionID = getProp(mGetLRU(me, "getVO_LRU_q", [#p_Vid_Code: clipNum], [#ID], 0), #ID)
  113.       end if
  114.     #VR:
  115.       clipNum = mGetVal(me, "getVid_MRU_q", [#p_Last_Appearance: pChapterNum], #Vid_Code, 0)
  116.       questionID = getProp(mGetLRU(me, "getVR_LRU_q", [#p_Vid_Code: clipNum], [#ID], 0), #ID)
  117.     #AUL, #PCL, #AU:
  118.       questionID = getProp(mGetLRU(me, "getAU_LRU_q", qParamList, [#ID], 0), #ID)
  119.     #FF:
  120.       questionID = getProp(mGetLRU(me, "getFF_LRU_q", qParamList, [#ID], 0), #ID)
  121.     #FFF:
  122.       questionID = getProp(mGetLRU(me, "getFFF_LRU_q", qParamList, [#ID], 0), #ID)
  123.     #AN:
  124.       questionID = getProp(mGetLRU(me, "getAN_LRU_q", qParamList, [#ID], 0), #ID)
  125.     otherwise:
  126.       alert("hgwshdgwdg")
  127.   end case
  128.   return questionID
  129. end
  130.  
  131. on mGetVal me, queryName, extraParamList, returnParam, updateFlag
  132.   qDef = DGQDOpen(queryName, pQuizDB)
  133.   i = 1
  134.   repeat while i <= extraParamList.count
  135.     DGQDSetParameterValue(string(getPropAt(extraParamList, i)), getAt(extraParamList, i), qDef)
  136.     i = i + 1
  137.   end repeat
  138.   rs = DGQDCreateRS(qDef)
  139.   DGRSMoveFirst(rs)
  140.   record = mGetCurrentRecord(me, [returnParam], rs)
  141.   if updateFlag then
  142.     mUpdateRecency(me, rs)
  143.   end if
  144.   DGRSClose(rs)
  145.   DGQDClose(qDef)
  146.   return getProp(record, returnParam)
  147. end
  148.  
  149. on mGetLRU me, queryName, extraParamList, returnParamL, updateFlag
  150.   qDef = DGQDOpen(queryName, pQuizDB)
  151.   i = 1
  152.   repeat while i <= extraParamList.count
  153.     DGQDSetParameterValue(string(getPropAt(extraParamList, i)), getAt(extraParamList, i), qDef)
  154.     i = i + 1
  155.   end repeat
  156.   rs = DGQDCreateRS(qDef)
  157.   DGRSMoveLast(rs)
  158.   numRecs = DGRSGetRecordCount(rs)
  159.   if numRecs = 0 then
  160.     i = 1
  161.     retList = [:]
  162.     repeat while i <= returnParamL.count
  163.       addProp(retList, getAt(returnParamL, i), 0)
  164.       i = i + 1
  165.     end repeat
  166.     return retList
  167.   end if
  168.   DGRSMoveFirst(rs)
  169.   recOffset = random(numRecs) - 1
  170.   DGRSMove(recOffset, rs)
  171.   record = mGetCurrentRecord(me, returnParamL, rs)
  172.   if updateFlag then
  173.     mUpdateRecency(me, rs)
  174.   end if
  175.   DGRSClose(rs)
  176.   DGQDClose(qDef)
  177.   return record
  178. end
  179.  
  180. on mUpdateRecency me, table
  181.   DGRSEdit(table)
  182.   DGRSSetFieldValue("Last_Appearance", pChapterNum, table)
  183.   DGRSUpdate(table)
  184. end
  185.  
  186. on zeroAll me
  187.   rs = DGCreateRecordset("SELECT * FROM Quiz_Sys WHERE ID = 1", pQuizDB)
  188.   DGRSEdit(rs)
  189.   DGRSSetFieldValue("Sys_Last_Play_Num", 0, rs)
  190.   DGRSUpdate(rs)
  191.   DGRSClose(rs)
  192.   zeroTable(me, "Media_Pic")
  193.   zeroTable(me, "Media_Pic_Grid")
  194.   zeroTable(me, "Questions_VO")
  195.   zeroTable(me, "Questions_FF")
  196.   zeroTable(me, "Questions_AN")
  197.   zeroTable(me, "Questions_Char")
  198.   zeroTable(me, "Media_Vid")
  199.   zeroTable(me, "Media_Aud")
  200.   zeroTable(me, "Quiz_Char")
  201. end
  202.  
  203. on zeroTable me, table
  204.   sqlstr = "SELECT * FROM " & table
  205.   rs = DGCreateRecordset(sqlstr, pQuizDB)
  206.   DGRSMoveFirst(rs)
  207.   i = 1
  208.   repeat while 1
  209.     DGRSEdit(rs)
  210.     DGRSSetFieldValue("Last_Appearance", 0, rs)
  211.     DGRSUpdate(rs)
  212.     DGRSmoveNext(rs)
  213.     if DGRSisEOF(rs) then
  214.       DGRSmovePrev(rs)
  215.       exit repeat
  216.     end if
  217.   end repeat
  218.   DGRSClose(rs)
  219. end
  220.